Necesito declarar un estado de uso, pero no entiendo claramente TypeScript. ¿Qué debo escribir en lugar de XXXXXX ? Tengo un JSON estricto con cadena > cadena > estructura numérica y lo llenaré con los ID de elemento de diseño selectedLayoutItemIds . La identificación de nivel superior se llama eventTimeId , el segundo nivel lo llamaría layoutItemId , el tercer nivel count . ¿Ayudarías un poco?
const [selectedLayoutItemIds, setSelectedLayoutItemIds] = useState< { [eventTimeId: string]: XXXXXX } | undefined >();Solo tiene que describir la estructura de los datos como lo haría en un json normal y las claves de primer y segundo nivel se tratarán como cadenas:
interface LayoutItemIds { eventTimeId: { layoutItemId: { count: number; } } } const [selectedLayoutItemIds, setSelectedLayoutItemIds] = useState<LayoutItemIds | undefined>();Aquí hay un patio de recreo para verlo en acción.
Finalmente declaré una nueva interfaz:
export type LayoutItemIdsWithAvailability = { [layoutItemId: string]: number; };y usado aquí:
const [selectedLayoutItemIds, setSelectedLayoutItemIds] = useState< { [eventTimeId: string]: LayoutItemIdsWithAvailability } | undefined >();